home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Over 1,000 Windows 95 Programs
/
Over 1000 Windows 95 Programs (Microforum) (Disc 1).iso
/
1256
/
tour021.co_
/
tour021.co
Wrap
Text File
|
1997-04-18
|
15KB
|
421 lines
*---Created with EasyCODE(COB)----------------------------------- # EASY O
*---Last modification: 01.03.1995 14:24:15----------------------- # EASY K
*This program is used for presenting a complete offer of all jour\
*neys available.
*---------------------------------------------------------------- # EASY *
*---------------------------------------------------------------- # EASY (
*TOUR021
*---------------------------------------------------------------- # EASY *
IDENTIFICATION DIVISION.
PROGRAM-ID. TOUR021.
*
*
* THIS PROGRAM IS USED FOR PRESENTING A COMPLETE OFFER
* OF ALL JOURNEYS AVAILABLE.
* ITS TAC : OFFER.
*
*
ENVIRONMENT DIVISION.
DATA DIVISION.
*---------------------------------------------------------------- # EASY (
*** Data Division ***
*---------------------------------------------------------------- # EASY *
WORKING-STORAGE SECTION.
* CONSTANT DEFINITIONS
77 ERRORMESSAGE-1 PIC X(80) VALUE
"NO MORE JOURNEYS AVAILABLE".
77 ERRORMESSAGE-2 PIC X(80) VALUE
"JOURNEY DOES NOT EXIST".
77 ERRORMESSAGE-3 PIC X(80) VALUE
"WRONG KEY - ONLY DUE, F1 OR K1 ALLOWED".
COPY KCOPC.
COPY KCDFC.
* # EASY S
LINKAGE SECTION.
* VARIABLE DECLARATIONS
COPY KCKBC.
05 MENU-MESSAGE PIC X(80).
05 EOF PIC 9.
05 NB PIC X(404).
05 INTERNAL-MESSAGE REDEFINES NB.
COPY INTMESS.
41 FILLER PIC X(300).
05 OFFER REDEFINES NB.
COPY OFFER.
COPY KCPAC.
03 ERROR-LINE.
05 RET-CODE PIC X(3).
05 OCCURRED-AT PIC X(5).
05 OP-CODE PIC X(4).
03 JOURNEY.
COPY JOURNEY.
03 PEND-MODE PIC X(2).
03 NEXT-TAC PIC X(8).
03 ERROR-SIGN PIC 9.
03 IND PIC 9(2).
* # EASY S
*---------------------------------------------------------------- # EASY )
PROCEDURE DIVISION USING KCKBC KCSPAB.
*---------------------------------------------------------------- # EASY (
*** Procedure Division ***
*---------------------------------------------------------------- # EASY *
MAIN SECTION.
MAIN.
PERFORM
* UTM-INITIALIZATION
INIT-OPERATION
IF
* CURRENT FORMAT = OFFER
KCRMF = "*OFFER"
THEN
PERFORM GO-ON-OFFERING
ELSE
PERFORM START-OFFERING
END-IF
PERFORM PEND-OPERATION
EXIT PROGRAM
.
* # EASY P
* # EASY S
*---------------------------------------------------------------- # EASY (
**** SUBROUTINE Section ***
*---------------------------------------------------------------- # EASY *
SUBROUTINE SECTION.
*---------------------------------------------------------------- # EASY (
**** GO-ON-OFFERING ***
*---------------------------------------------------------------- # EASY *
GO-ON-OFFERING.
PERFORM MGET-OPERATION
EVALUATE
* RETURNCODE
KCRCCC
WHEN
* DUE-KEY
"000"
PERFORM GO-ON-SCROLLING
WHEN
* F1-KEY
"21Z"
PERFORM BOOK
WHEN
* K1-KEY
"24Z"
PERFORM END-OF-OFFER
WHEN OTHER
IF
* WRONG KEY
KCRCCC NOT < F1-KEY AND
KCRCCC NOT > K2-KEY
THEN
PERFORM REJECT-WRONG-KEY
ELSE
PERFORM ERROR-MPUT-OPERATION,
PERFORM ERROR-PEND-OPERATION
END-IF
END-EVALUATE
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** START-OFFERING ***
*---------------------------------------------------------------- # EASY *
START-OFFERING.
PERFORM INTERNAL-MGET
* # EASY -
* INITIALIZE OFFER FORMAT
MOVE SPACES TO OFFER
MOVE ZEROES TO JOURNEY-ID OF JOURNEY,
BOOKING-JOURNEY-ID OF OFFER
PERFORM FILL-JOURNEY-TABLE
PERFORM PREPARE-OUTPUT
PERFORM MPUT-OPERATION
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** GO-ON-SCROLLING ***
*---------------------------------------------------------------- # EASY *
GO-ON-SCROLLING.
* DELETE OFFER-TABLE
MOVE SPACES TO JOURNEY-TABLE-TAB OF OFFER
IF
* MORE JOURNEYS AVAILABLE
EOF = 0
THEN
MOVE ZERO TO IND
PERFORM WITH TEST BEFORE UNTIL
* MAXIMUM OF 10 TABLE ENTRIES
IND = 10 OR
EOF NOT = 0
PERFORM READ-JOURNEY
END-PERFORM
ELSE
MOVE ZERO TO JOURNEY-ID OF JOURNEY,
PERFORM FILL-JOURNEY-TABLE
END-IF
PERFORM PREPARE-OUTPUT
PERFORM MPUT-OPERATION
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** END-OF-OFFER ***
*---------------------------------------------------------------- # EASY *
END-OF-OFFER.
* BACK TO MENU-OUTPUT
MOVE SPACES TO MENU-MESSAGE
MOVE "MENUOUT" TO NEXT-TAC
MOVE "PR" TO PEND-MODE
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** BOOK ***
*---------------------------------------------------------------- # EASY *
BOOK.
PERFORM
SECOND-MGET-OPERATION
* REQUESTED BY UTM
* # EASY -
* TAKE JOURNEY-ID OF JOURNEY TO BE BOOKED FROM OFFER-MASK
MOVE BOOKING-JOURNEY-ID OF OFFER TO
JOURNEY-ID OF JOURNEY, JOURNEY-ID OF INTERNAL-MESSAGE
CALL "RDJRNEY" USING JOURNEY, ERROR-SIGN
IF
* SUCCESSFUL
ERROR-SIGN = 0
THEN
* TAKE WHERE-TO-GO
MOVE WHERE-TO-GO OF JOURNEY TO
WHERE-TO-GO OF INTERNAL-MESSAGE,
MOVE SPACES TO MESSAGE-TEXT OF INTERNAL-MESSAGE
ELSE
* JOURNEY DOES NOT EXIST
MOVE SPACES TO WHERE-TO-GO OF INTERNAL-MESSAGE,
MOVE ERRORMESSAGE-2 TO MESSAGE-TEXT OF INTERNAL-MESSAGE
END-IF
* HANDLE UTM-FIELDS
MOVE 104 TO KCLM
MOVE "OFFBOOK" TO KCRN, NEXT-TAC
MOVE "FC" TO PEND-MODE
PERFORM MPUT-OPERATION
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** REJECT-WRONG-KEY ***
*---------------------------------------------------------------- # EASY *
REJECT-WRONG-KEY.
PERFORM FILL-JOURNEY-TABLE
* # EASY -
* WRONG KEY - ONLY DUE, F1 OR K1 ALLOWED
MOVE ERRORMESSAGE-3 TO MESSAGE-TEXT OF OFFER
PERFORM PREPARE-OUTPUT
PERFORM MPUT-OPERATION
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** FILL-JOURNEY-TABLE ***
*---------------------------------------------------------------- # EASY *
FILL-JOURNEY-TABLE.
CALL "POSJRNEY" USING JOURNEY, ERROR-SIGN
IF
* SUCCESSFUL
ERROR-SIGN = 0
THEN
* INITIALIZE TABLE-INDEX AND END-OF-FILE SIGN
MOVE ZERO TO IND, EOF
PERFORM WITH TEST BEFORE UNTIL
* MAXIMUM 10 TIMES
IND = 10 OR
EOF NOT = 0
PERFORM READ-JOURNEY
END-PERFORM
ELSE
* NO MORE JOURNEYS AVAILABLE
MOVE ERRORMESSAGE-1 TO MESSAGE-TEXT OF OFFER
END-IF
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** READ-JOURNEY ***
*---------------------------------------------------------------- # EASY *
READ-JOURNEY.
* NEXT TABLE-INDEX
ADD 1 TO IND
CALL "NXTJRNEY" USING JOURNEY-TABLE OF OFFER(IND), EOF
IF
* UNSUCCESSFUL
EOF NOT = 0
THEN
* NO MORE JOURNEYS AVAILABLE
MOVE ERRORMESSAGE-1 TO MESSAGE-TEXT OF OFFER
* # EASY -
* UPDATE TABLE-INDEX
SUBTRACT 1 FROM IND
END-IF
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** PREPARE-OUTPUT ***
*---------------------------------------------------------------- # EASY *
PREPARE-OUTPUT.
* CREATE OFFER-MASK
MOVE 404 TO KCLM
MOVE "*OFFER" TO KCMF
MOVE SPACES TO KCRN
MOVE "OFFER" TO NEXT-TAC
MOVE "RE" TO PEND-MODE
MOVE KCREPL TO KCDF
.
* # EASY P
*---------------------------------------------------------------- # EASY )
* # EASY S
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** KDCS Section ***
*---------------------------------------------------------------- # EASY *
KDCS SECTION.
*---------------------------------------------------------------- # EASY (
**** INIT-OPERATION ***
*---------------------------------------------------------------- # EASY *
INIT-OPERATION.
MOVE INIT TO KCOP
* # EASY -
MOVE 485 TO KCLKBPRG
* # EASY -
MOVE 1000 TO KCLPAB
CALL "KDCS" USING KCPAC
IF KCRCCC NOT = "000"
THEN
PERFORM ERROR-MPUT-OPERATION
PERFORM ERROR-PEND-OPERATION
END-IF
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** MGET-OPERATION ***
*---------------------------------------------------------------- # EASY *
MGET-OPERATION.
MOVE MGET TO KCOP
* # EASY -
MOVE 404 TO KCLA
* # EASY -
MOVE "*OFFER" TO KCMF
CALL "KDCS" USING KCPAC, OFFER
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** SECOND-MGET-OPERATION ***
*---------------------------------------------------------------- # EASY *
SECOND-MGET-OPERATION.
MOVE MGET TO KCOP
* # EASY -
MOVE "*OFFER" TO KCMF
* # EASY -
MOVE 404 TO KCLA
CALL "KDCS" USING KCPAC, OFFER
IF KCRCCC NOT = "000"
THEN
PERFORM ERROR-MPUT-OPERATION,
PERFORM ERROR-PEND-OPERATION
END-IF
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** INTERNAL-MGET ***
*---------------------------------------------------------------- # EASY *
INTERNAL-MGET.
MOVE MGET TO KCOP
* # EASY -
MOVE 0 TO KCLA
* # EASY -
MOVE SPACES TO KCMF
CALL "KDCS" USING KCPAC, INTERNAL-MESSAGE
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** MPUT-OPERATION ***
*---------------------------------------------------------------- # EASY *
MPUT-OPERATION.
MOVE MPUT TO KCOP
* # EASY -
MOVE "NE" TO KCOM
CALL "KDCS" USING KCPAC, NB
IF KCRCCC > "000"
THEN
PERFORM ERROR-PEND-OPERATION
END-IF
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** PEND-OPERATION ***
*---------------------------------------------------------------- # EASY *
PEND-OPERATION.
MOVE LOW-VALUES TO KCPAC
* # EASY -
MOVE PEND TO KCOP
* # EASY -
MOVE PEND-MODE TO KCOM
* # EASY -
MOVE NEXT-TAC TO KCRN
CALL "KDCS" USING KCPAC
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** ERROR-PEND-OPERATION ***
*---------------------------------------------------------------- # EASY *
ERROR-PEND-OPERATION.
MOVE PEND TO KCOP
* # EASY -
MOVE "ER" TO KCOM
CALL "KDCS" USING KCPAC
.
* # EASY P
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY (
**** ERROR-MPUT-OPERATION ***
*---------------------------------------------------------------- # EASY *
ERROR-MPUT-OPERATION.
MOVE KCRCCC TO RET-CODE
* # EASY -
MOVE " AT " TO OCCURRED-AT
* # EASY -
MOVE KCOP TO OP-CODE
* # EASY -
MOVE MPUT TO KCOP
* # EASY -
MOVE "NE" TO KCOM,
MOVE 20 TO KCLM
* # EASY -
MOVE SPACES TO KCMF, KCRN
* # EASY -
MOVE KCALARM TO KCDF
CALL "KDCS" USING KCPAC, ERROR-LINE
.
* # EASY P
*---------------------------------------------------------------- # EASY )
* # EASY S
*---------------------------------------------------------------- # EASY )
*---------------------------------------------------------------- # EASY )
END PROGRAM TOUR021.
*---------------------------------------------------------------- # EASY )